|
// |
|
// Part of the "Create Cross Reference" workflow for Evernote (OSX) |
|
// |
|
// License: MIT http://opensource.org/licenses/MIT |
|
// Copyright (c) 2015 Hong Chen |
|
// |
|
// Permission is hereby granted, free of charge, to any person obtaining a copy |
|
// of this software and associated documentation files (the "Software"), to deal |
|
// in the Software without restriction, including without limitation the rights |
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
// copies of the Software, and to permit persons to whom the Software is |
|
// furnished to do so, subject to the following conditions: |
|
// |
|
// The above copyright notice and this permission notice shall be included in |
|
// all copies or substantial portions of the Software. |
|
// |
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
|
// THE SOFTWARE. |
|
// |
|
// |
|
function run(input, parameters) { |
|
function sanitizeLabel(label){ |
|
var newLabel = label.toString().toLowerCase(); |
|
newLabel = newLabel.replace(/[^\-a-z0-9]/g, '-'); // numbers, letters and '-' only |
|
newLabel = newLabel.replace(/^anchor-/, '').replace(/-*?(?=$)/, ''); //strip leading 'anchor-' and and trailing '-' |
|
newLabel = ('anchor-' + newLabel).replace(/-{2,}/g, '-'); |
|
return newLabel; |
|
} |
|
|
|
var selectedText = input; |
|
var defaultLabel = sanitizeLabel(input); |
|
|
|
App = Application.currentApplication(); |
|
App.includeStandardAdditions = true; |
|
|
|
var prompt0 = 'Please specifiy a label for this anchor: '; |
|
prompt0 += "(numberes, letters and hyphens('-') only)"; |
|
answer = App.displayDialog(prompt0, { |
|
withTitle: 'Label', |
|
defaultAnswer: defaultLabel |
|
}); |
|
|
|
var label = sanitizeLabel(answer.textReturned); |
|
if(label.length === 5){ |
|
label = defaultLabel; |
|
} |
|
|
|
var prompt1 = "Please specify text to the link:"; |
|
var defaultLinkText = "Link to #" + label.replace(/^anchor-/, ''); |
|
answer = App.displayDialog(prompt1, { |
|
withTitle: 'Link text', |
|
defaultAnswer: defaultLinkText |
|
}); |
|
|
|
var linkText = answer.textReturned.toString(); |
|
|
|
// Style |
|
var resultText = '<a href="#' + label + '" style="font-size: 16px; font-family: Arial, sans-serif, serif;">' + linkText + '</a><br><br>'; |
|
resultText += '<b><u><a name="' + label + '" style="font-size: 18px; font-family: Arial, sans-serif, serif;" title="' + label + '">' + selectedText + '</a></u></b>'; |
|
|
|
return resultText; |
|
} |