Skip to content

Instantly share code, notes, and snippets.

@kanemu
kanemu / jsonLexer.groovy
Created September 14, 2011 12:26
[groovy][jsonslurper]JsonSlurperで読み書きするとスラッシュがエスケープされる例。
import groovy.json.*
import static groovy.json.JsonOutput.toJson
String sampleJson = '{"url":"http://www.yahoo.co.jp"}'
def jsonMap = new JsonSlurper().parseText(sampleJson)
String sampleJson2 = toJson(jsonMap)
assert sampleJson2 != sampleJson
assert sampleJson2 == '{"url":"http:\\/\\/www.yahoo.co.jp"}'
@kanemu
kanemu / docSaveWithTimestamp.jsx
Created September 3, 2011 14:04
[indesign][extendscript]保存毎に前回保存時のコピーを残す
#targetengine "logging"
var timeStamp = function(d){
var i,ary;
if(!d){ d = new Date() };
ary = [
d.getFullYear(),(d.getMonth()+1),d.getDate(),
d.getHours(),d.getMinutes(),d.getSeconds()
];
for(i=0,len=ary.length;i<len;i++){
@kanemu
kanemu / timestamp.js
Created September 3, 2011 12:11
[javascript]タイムスタンプ
var timeStamp = function(){
var d,i,ary;
d = new Date();
ary = [
d.getFullYear(),(d.getMonth()+1),d.getDate(),
d.getHours(),d.getMinutes(),d.getSeconds()
];
for(i=0,len=ary.length;i<len;i++){
ary[i] = (ary[i]<10)? '0'+ary[i]:''+ary[i];
};
@kanemu
kanemu / fitArtboard.jsx
Created August 10, 2011 08:09
[illustrator]アートボードをオブジェクト全体に合わせる
#target "Illustrator"
function mergedBounds(bns,nowBns){
if(!bns){
bns=nowBns;
}else{
if(nowBns){
if(bns[0]>nowBns[0])bns[0]=nowBns[0];
if(bns[1]<nowBns[1])bns[1]=nowBns[1];
if(bns[2]<nowBns[2])bns[2]=nowBns[2];
@kanemu
kanemu / path.jsx
Created July 19, 2011 04:08
[indesign]選択オブジェクトのパスのポイント位置を確認。
/*選択オブジェクトのパスのポイント位置を確認。*/
var obj=app.activeDocument.selection[0];
if(obj.hasOwnProperty('paths')){
var path = obj.paths.firstItem().entirePath;
for(var i=0,len=path.length;i<len;i++){
$.writeln(uneval(path[i]));
}
}
@kanemu
kanemu / exportIdmlOrInx.jsx
Created July 12, 2011 16:11
[indesign]開いているドキュメントをidmlかinxで保存
(function(){
var docs = app.documents;
if(docs.length===0)return;
for(var i=0,len=docs.length;i<len;i++){
var doc = docs[i];
var docPath = doc.fullName.absoluteURI;
if(parseInt(app.version) > 6){
var idmlFile = new File(docPath.split('.')[0]+'.idml');
doc.exportFile(ExportFormat.INDESIGN_MARKUP,idmlFile);
}else{
@kanemu
kanemu / jdomneko.groovy
Created July 1, 2011 03:57
[groovy]jdomでnekohtmlを使う
@Grab(group='nekohtml', module='nekohtml', version='1.9.6.2')
@Grab(group='org.jdom', module='jdom', version='1.1')
import org.cyberneko.html.HTMLConfiguration
import org.apache.xerces.parsers.DOMParser
import org.xml.sax.InputSource
import org.jdom.input.DOMBuilder
import org.jdom.Document
import org.jdom.Element
import org.jdom.filter.ElementFilter
@kanemu
kanemu / iphoneicon.sh
Created May 26, 2011 01:03
[shell]iPhone用アイコン生成
#!/bin/bash
sips -s format png -z 512 512 $1 --out iTunesArtwork
sips -s format png -z 57 57 $1 --out Icon.png
sips -s format png -z 114 114 $1 --out Icon@2x.png
sips -s format png -z 72 72 $1 --out Icon-72.png
sips -s format png -z 29 29 $1 --out Icon-Small.png
sips -s format png -z 50 50 $1 --out Icon-Small-50.png
sips -s format png -z 58 58 $1 --out Icon-Small@2x.png
@kanemu
kanemu / fascii2ascii.groovy
Created March 12, 2011 11:35
[groovy]全角英数を半角英数に変換
String str = 'Hello,1717です。'
str = str.replaceAll(/[\uff01-\uff5e]/){new String((char)(((int)it)-65248))}
assert str=='Hello,1717です。'
@kanemu
kanemu / searchHyperLinkDest.jsx
Created March 9, 2011 21:47
[indesign]選択範囲内の行にハイパーリンク先があるかどうか調べる
(function(){
//選択範囲内の行にハイパーリンク先があるかどうか調べる
if(app.documents.length===0)return;
var doc = app.activeDocument;
if(doc.selection.length===0)return;
var paras = doc.selection[0].paragraphs;
if(paras){
var destTexts = doc.hyperlinkTextDestinations;
var destParas = destTexts.everyItem().destinationText;
for(var d=destParas.length-1;d>-1;d--){